package com.ruoyi.order.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 订单列表对象 order
 *
 * @author ruoyi
 * @date 2024-12-13
 */
public class Order extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单表唯一标识 */
    @Excel(name = "订单表唯一标识")
    private Long orderId;

    /** 下单的用户ID */
    @Excel(name = "下单的用户ID")
    private Long orderUerId;

    /** 订单状态外键（待支付、已支付、未发货、待收货） */
    @Excel(name = "订单状态外键", readConverterExp = "待=支付、已支付、未发货、待收货")
    private Long orderStatus;

    /** 订单总金额 */
    @Excel(name = "订单总金额")
    private BigDecimal orderTotal;

    /** 支付方式（微信，余额） */
    @Excel(name = "支付方式", readConverterExp = "微=信，余额")
    private String orderPaymentMethod;

    /** 支付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderPaymentTime;

    /** 发货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderDeliveryTime;

    /** 收货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "收货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderReceiptTime;

    /** 订单创建时间（支付时间） */
    @Excel(name = "订单创建时间", readConverterExp = "支=付时间")
    private Date orderCreateTime;

    /** 订单信息最后更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "订单信息最后更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderUpdateTime;

    /** 订单收货人 */
    @Excel(name = "订单收货人")
    private String orderReceiverName;

    /** 收货人联系方式 */
    @Excel(name = "收货人联系方式")
    private String orderReceiverPhone;

    /** 收货地址 */
    @Excel(name = "收货地址")
    private String orderReceiverAddress;

    /** 商品的外键 */
    @Excel(name = "商品的外键")
    private Long orderGoodsId;

    /** 实际支付金额 */
    @Excel(name = "实际支付金额")
    private BigDecimal orderPayPrice;

    /** 订单备注 */
    @Excel(name = "订单备注")
    private String orderNotes;

    /** 订单是否被删除(软删除) */
    @Excel(name = "订单是否被删除(软删除)")
    private Long orderIsDeleted;

    /** 与支付网关关联唯一标识 */
    @Excel(name = "与支付网关关联唯一标识")
    private String orderTransactionId;

    public void setOrderId(Long orderId)
    {
        this.orderId = orderId;
    }

    public Long getOrderId()
    {
        return orderId;
    }
    public void setOrderUerId(Long orderUerId)
    {
        this.orderUerId = orderUerId;
    }

    public Long getOrderUerId()
    {
        return orderUerId;
    }
    public void setOrderStatus(Long orderStatus)
    {
        this.orderStatus = orderStatus;
    }

    public Long getOrderStatus()
    {
        return orderStatus;
    }
    public void setOrderTotal(BigDecimal orderTotal)
    {
        this.orderTotal = orderTotal;
    }

    public BigDecimal getOrderTotal()
    {
        return orderTotal;
    }
    public void setOrderPaymentMethod(String orderPaymentMethod)
    {
        this.orderPaymentMethod = orderPaymentMethod;
    }

    public String getOrderPaymentMethod()
    {
        return orderPaymentMethod;
    }
    public void setOrderPaymentTime(Date orderPaymentTime)
    {
        this.orderPaymentTime = orderPaymentTime;
    }

    public Date getOrderPaymentTime()
    {
        return orderPaymentTime;
    }
    public void setOrderDeliveryTime(Date orderDeliveryTime)
    {
        this.orderDeliveryTime = orderDeliveryTime;
    }

    public Date getOrderDeliveryTime()
    {
        return orderDeliveryTime;
    }
    public void setOrderReceiptTime(Date orderReceiptTime)
    {
        this.orderReceiptTime = orderReceiptTime;
    }

    public Date getOrderReceiptTime()
    {
        return orderReceiptTime;
    }
    public void setOrderCreateTime(Date orderCreateTime)
    {
        this.orderCreateTime = orderCreateTime;
    }

    public Date getOrderCreateTime()
    {
        return orderCreateTime;
    }
    public void setOrderUpdateTime(Date orderUpdateTime)
    {
        this.orderUpdateTime = orderUpdateTime;
    }

    public Date getOrderUpdateTime()
    {
        return orderUpdateTime;
    }
    public void setOrderReceiverName(String orderReceiverName)
    {
        this.orderReceiverName = orderReceiverName;
    }

    public String getOrderReceiverName()
    {
        return orderReceiverName;
    }
    public void setOrderReceiverPhone(String orderReceiverPhone)
    {
        this.orderReceiverPhone = orderReceiverPhone;
    }

    public String getOrderReceiverPhone()
    {
        return orderReceiverPhone;
    }
    public void setOrderReceiverAddress(String orderReceiverAddress)
    {
        this.orderReceiverAddress = orderReceiverAddress;
    }

    public String getOrderReceiverAddress()
    {
        return orderReceiverAddress;
    }
    public void setOrderGoodsId(Long orderGoodsId)
    {
        this.orderGoodsId = orderGoodsId;
    }

    public Long getOrderGoodsId()
    {
        return orderGoodsId;
    }
    public void setOrderPayPrice(BigDecimal orderPayPrice)
    {
        this.orderPayPrice = orderPayPrice;
    }

    public BigDecimal getOrderPayPrice()
    {
        return orderPayPrice;
    }
    public void setOrderNotes(String orderNotes)
    {
        this.orderNotes = orderNotes;
    }

    public String getOrderNotes()
    {
        return orderNotes;
    }
    public void setOrderIsDeleted(Long orderIsDeleted)
    {
        this.orderIsDeleted = orderIsDeleted;
    }

    public Long getOrderIsDeleted()
    {
        return orderIsDeleted;
    }
    public void setOrderTransactionId(String orderTransactionId)
    {
        this.orderTransactionId = orderTransactionId;
    }

    public String getOrderTransactionId()
    {
        return orderTransactionId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("orderId", getOrderId())
            .append("orderUerId", getOrderUerId())
            .append("orderStatus", getOrderStatus())
            .append("orderTotal", getOrderTotal())
            .append("orderPaymentMethod", getOrderPaymentMethod())
            .append("orderPaymentTime", getOrderPaymentTime())
            .append("orderDeliveryTime", getOrderDeliveryTime())
            .append("orderReceiptTime", getOrderReceiptTime())
            .append("orderCreateTime", getOrderCreateTime())
            .append("orderUpdateTime", getOrderUpdateTime())
            .append("orderReceiverName", getOrderReceiverName())
            .append("orderReceiverPhone", getOrderReceiverPhone())
            .append("orderReceiverAddress", getOrderReceiverAddress())
            .append("orderGoodsId", getOrderGoodsId())
            .append("orderPayPrice", getOrderPayPrice())
            .append("orderNotes", getOrderNotes())
            .append("orderIsDeleted", getOrderIsDeleted())
            .append("orderTransactionId", getOrderTransactionId())
            .toString();
    }
}
